import holoviews as hv
import geoviews as gv
import xarray as xr
import cartopy.crs as ccrs
import hvplot
import hvplot.xarray
import numpy as np
import pop_tools
import geoviews.feature as gf
import intake
import geocat.comp
import yaml
gv.extension('bokeh')
with open("case_config.yml", mode="r") as fptr:
case_config = yaml.safe_load(fptr)
Spin up a Dask Cluster¶
from distributed import Client
from ncar_jobqueue import NCARCluster
cluster = NCARCluster(memory='20 GB')
cluster.scale(80)
client = Client(cluster)
/glade/u/home/mgrover/.local/lib/python3.9/site-packages/dask_jobqueue/core.py:19: FutureWarning: format_bytes is deprecated and will be removed in a future release. Please use dask.utils.format_bytes instead.
from distributed.utils import format_bytes, parse_bytes, tmpfile
/glade/u/home/mgrover/.local/lib/python3.9/site-packages/dask_jobqueue/core.py:19: FutureWarning: parse_bytes is deprecated and will be removed in a future release. Please use dask.utils.parse_bytes instead.
from distributed.utils import format_bytes, parse_bytes, tmpfile
/glade/u/home/mgrover/.local/lib/python3.9/site-packages/dask_jobqueue/htcondor.py:6: FutureWarning: parse_bytes is deprecated and will be removed in a future release. Please use dask.utils.parse_bytes instead.
from distributed.utils import parse_bytes
client
Client
Client-62ad0abd-09e3-11ec-8c31-3cecef1b12ec
| Connection method: Cluster object | Cluster type: dask_jobqueue.PBSCluster |
| Dashboard: https://jupyterhub.hpc.ucar.edu/stable/user/mgrover/proxy/8787/status |
Cluster Info
PBSCluster
514c52f7
| Dashboard: https://jupyterhub.hpc.ucar.edu/stable/user/mgrover/proxy/8787/status | Workers: 0 |
| Total threads: 0 | Total memory: 0 B |
Scheduler Info
Scheduler
Scheduler-707ebe66-fad9-4fc7-a21b-49b5d7d4a38d
| Comm: tcp://10.12.206.5:33400 | Workers: 0 |
| Dashboard: https://jupyterhub.hpc.ucar.edu/stable/user/mgrover/proxy/8787/status | Total threads: 0 |
| Started: 2 minutes ago | Total memory: 0 B |
Workers
Read in the Data Using Intake-ESM¶
data_catalog = intake.open_esm_datastore(
"../data/hires_catalog.json",
)
data_catalog
None catalog with 6 dataset(s) from 16028 asset(s):
| unique | |
|---|---|
| component | 2 |
| stream | 5 |
| case | 2 |
| member_id | 1 |
| variable | 471 |
| start_time | 102 |
| end_time | 102 |
| time_range | 102 |
| long_name | 454 |
| units | 48 |
| vertical_levels | 2 |
| frequency | 3 |
| path | 16028 |
variables = case_config['variables']
dsets = data_catalog.search(variable=variables).to_dataset_dict(cdf_kwargs={'chunks':{'nlat':800, 'nlon':900, 'z_t':4}})
--> The keys in the returned dictionary of datasets are constructed as follows:
'component.stream.case'
100.00% [1/1 00:00<00:00]
ds = dsets['ocn.pop.h.g.e22.G1850ECO_JRA_HR.TL319_t13.004'][variables]
ds
<xarray.Dataset>
Dimensions: (time: 408, z_t: 62, nlat: 2400, nlon: 3600)
Coordinates:
* z_t (z_t) float32 500.0 1.5e+03 2.5e+03 ... 5.625e+05 5.875e+05
ULONG (nlat, nlon) float64 dask.array<chunksize=(800, 900), meta=np.ndarray>
ULAT (nlat, nlon) float64 dask.array<chunksize=(800, 900), meta=np.ndarray>
TLONG (nlat, nlon) float64 dask.array<chunksize=(800, 900), meta=np.ndarray>
TLAT (nlat, nlon) float64 dask.array<chunksize=(800, 900), meta=np.ndarray>
* time (time) object 0002-02-01 00:00:00 ... 0025-01-01 00:00:00
Dimensions without coordinates: nlat, nlon
Data variables:
TEMP (time, z_t, nlat, nlon) float32 dask.array<chunksize=(12, 4, 800, 900), meta=np.ndarray>
Attributes:
cell_methods: cell_methods = time: mean ==> the variable value...
source: CCSM POP2, the CCSM Ocean Component
history: none
intake_esm_varname: ['TEMP']
time_period_freq: month_1
revision: $Id$
title: g.e22.G1850ECO_JRA_HR.TL319_t13.004
Conventions: CF-1.0; http://www.cgd.ucar.edu/cms/eaton/netcdf...
calendar: All years have exactly 365 days.
contents: Diagnostic and Prognostic Variables
model_doi_url: https://doi.org/10.5065/D67H1H0V
intake_esm_dataset_key: ocn.pop.h.g.e22.G1850ECO_JRA_HR.TL319_t13.004xarray.Dataset
- time: 408
- z_t: 62
- nlat: 2400
- nlon: 3600
- z_t(z_t)float32500.0 1.5e+03 ... 5.875e+05
- long_name :
- depth from surface to midpoint of layer
- units :
- centimeters
- positive :
- down
- valid_min :
- 500.0
- valid_max :
- 587499.06
array([5.000000e+02, 1.500000e+03, 2.500000e+03, 3.500000e+03, 4.500000e+03, 5.500000e+03, 6.500000e+03, 7.500000e+03, 8.500000e+03, 9.500000e+03, 1.050000e+04, 1.150000e+04, 1.250000e+04, 1.350000e+04, 1.450000e+04, 1.550000e+04, 1.650984e+04, 1.754790e+04, 1.862913e+04, 1.976603e+04, 2.097114e+04, 2.225783e+04, 2.364088e+04, 2.513702e+04, 2.676542e+04, 2.854837e+04, 3.051192e+04, 3.268680e+04, 3.510935e+04, 3.782276e+04, 4.087846e+04, 4.433777e+04, 4.827367e+04, 5.277280e+04, 5.793729e+04, 6.388626e+04, 7.075633e+04, 7.870025e+04, 8.788252e+04, 9.847059e+04, 1.106204e+05, 1.244567e+05, 1.400497e+05, 1.573946e+05, 1.764003e+05, 1.968944e+05, 2.186457e+05, 2.413972e+05, 2.649001e+05, 2.889385e+05, 3.133405e+05, 3.379793e+05, 3.627670e+05, 3.876452e+05, 4.125768e+05, 4.375392e+05, 4.625190e+05, 4.875083e+05, 5.125028e+05, 5.375000e+05, 5.624991e+05, 5.874991e+05], dtype=float32) - ULONG(nlat, nlon)float64dask.array<chunksize=(800, 900), meta=np.ndarray>
- long_name :
- array of u-grid longitudes
- units :
- degrees_east
Array Chunk Bytes 65.92 MiB 5.49 MiB Shape (2400, 3600) (800, 900) Count 13 Tasks 12 Chunks Type float64 numpy.ndarray - ULAT(nlat, nlon)float64dask.array<chunksize=(800, 900), meta=np.ndarray>
- long_name :
- array of u-grid latitudes
- units :
- degrees_north
Array Chunk Bytes 65.92 MiB 5.49 MiB Shape (2400, 3600) (800, 900) Count 13 Tasks 12 Chunks Type float64 numpy.ndarray - TLONG(nlat, nlon)float64dask.array<chunksize=(800, 900), meta=np.ndarray>
- long_name :
- array of t-grid longitudes
- units :
- degrees_east
Array Chunk Bytes 65.92 MiB 5.49 MiB Shape (2400, 3600) (800, 900) Count 13 Tasks 12 Chunks Type float64 numpy.ndarray - TLAT(nlat, nlon)float64dask.array<chunksize=(800, 900), meta=np.ndarray>
- long_name :
- array of t-grid latitudes
- units :
- degrees_north
Array Chunk Bytes 65.92 MiB 5.49 MiB Shape (2400, 3600) (800, 900) Count 13 Tasks 12 Chunks Type float64 numpy.ndarray - time(time)object0002-02-01 00:00:00 ... 0025-01-...
- long_name :
- time
- bounds :
- time_bound
array([cftime.datetime(2, 2, 1, 0, 0, 0, 0, calendar='noleap', has_year_zero=True), cftime.datetime(2, 3, 1, 0, 0, 0, 0, calendar='noleap', has_year_zero=True), cftime.datetime(2, 4, 1, 0, 0, 0, 0, calendar='noleap', has_year_zero=True), ..., cftime.datetime(24, 11, 1, 0, 0, 0, 0, calendar='noleap', has_year_zero=True), cftime.datetime(24, 12, 1, 0, 0, 0, 0, calendar='noleap', has_year_zero=True), cftime.datetime(25, 1, 1, 0, 0, 0, 0, calendar='noleap', has_year_zero=True)], dtype=object)
- TEMP(time, z_t, nlat, nlon)float32dask.array<chunksize=(12, 4, 800, 900), meta=np.ndarray>
- long_name :
- Potential Temperature
- units :
- degC
- grid_loc :
- 3111
- cell_methods :
- time: mean
Array Chunk Bytes 814.19 GiB 131.84 MiB Shape (408, 62, 2400, 3600) (12, 4, 800, 900) Count 13090 Tasks 6528 Chunks Type float32 numpy.ndarray
- cell_methods :
- cell_methods = time: mean ==> the variable values are averaged over the time interval between the previous time coordinate and the current one. cell_methods absent ==> the variable values are at the time given by the current time coordinate.
- source :
- CCSM POP2, the CCSM Ocean Component
- history :
- none
- intake_esm_varname :
- ['TEMP']
- time_period_freq :
- month_1
- revision :
- $Id$
- title :
- g.e22.G1850ECO_JRA_HR.TL319_t13.004
- Conventions :
- CF-1.0; http://www.cgd.ucar.edu/cms/eaton/netcdf/CF-current.htm
- calendar :
- All years have exactly 365 days.
- contents :
- Diagnostic and Prognostic Variables
- model_doi_url :
- https://doi.org/10.5065/D67H1H0V
- intake_esm_dataset_key :
- ocn.pop.h.g.e22.G1850ECO_JRA_HR.TL319_t13.004
Plot the Output¶
def add_cyclic_point(ds):
"""
Add a cyclic point to POP model output dataset
Parameters
----------
ds : xarray.Dataset
POP output dataset
Returns
-------
dso : xarray.Dataset
modified POP model output dataset with cyclic point added
"""
ni = ds.TLONG.shape[1]
xL = int(ni / 2 - 1)
xR = int(xL + ni)
tlon = ds.TLONG.data
tlat = ds.TLAT.data
tlon = np.where(np.greater_equal(tlon, min(tlon[:, 0])), tlon - 360.0, tlon)
lon = np.concatenate((tlon, tlon + 360.0), 1)
lon = lon[:, xL:xR]
if ni == 320:
lon[367:-3, 0] = lon[367:-3, 0] + 360.0
lon = lon - 360.0
lon = np.hstack((lon, lon[:, 0:1] + 360.0))
if ni == 320:
lon[367:, -1] = lon[367:, -1] - 360.0
# Trick cartopy into doing the right thing:
# Cartopy gets confused when the cyclic coords are identical
lon[:, 0] = lon[:, 0] - 1e-8
# Periodicity
lat = np.concatenate((tlat, tlat), 1)
lat = lat[:, xL:xR]
lat = np.hstack((lat, lat[:, 0:1]))
TLAT = xr.DataArray(lat, dims=('nlat', 'nlon'))
TLONG = xr.DataArray(lon, dims=('nlat', 'nlon'))
dso = xr.Dataset({'TLAT': TLAT, 'TLONG': TLONG})
# Copy vars
varlist = [v for v in ds.data_vars if v not in ['TLAT', 'TLONG']]
for v in varlist:
v_dims = ds[v].dims
if not ('nlat' in v_dims and 'nlon' in v_dims):
print(v_dims)
dso[v] = ds[v]
else:
# Determine and sort other dimensions
other_dims = set(v_dims) - {'nlat', 'nlon'}
other_dims = tuple([d for d in v_dims if d in other_dims])
lon_dim = ds[v].dims.index('nlon')
field = ds[v].data
field = np.concatenate((field, field), lon_dim)
field = field[..., :, xL:xR]
field = np.concatenate((field, field[..., :, 0:1]), lon_dim)
dso[v] = xr.DataArray(field, dims=other_dims + ('nlat', 'nlon'), attrs=ds[v].attrs)
# Copy coords
for v, da in ds.coords.items():
if not ('nlat' in da.dims and 'nlon' in da.dims):
#print(v, da)
dso = dso.assign_coords(**{v: da})
return dso
ds_sub = ds[variables]
climo = geocat.comp.climatology(ds_sub, 'month')
top_ten_levs = climo.isel(z_t=range(10))
%%time
cyclic_ds = add_cyclic_point(top_ten_levs)
CPU times: user 42.3 s, sys: 1.79 s, total: 44.1 s
Wall time: 2min 16s
cyclic_ds = cyclic_ds.set_coords(['TLAT', 'TLONG'])
client.restart()
Client
Client-c6d51787-09cb-11ec-a95b-3cecef1b12ec
| Connection method: Cluster object | Cluster type: dask_jobqueue.PBSCluster |
| Dashboard: https://jupyterhub.hpc.ucar.edu/stable/user/mgrover/proxy/8787/status |
Cluster Info
PBSCluster
59ef5ee0
| Dashboard: https://jupyterhub.hpc.ucar.edu/stable/user/mgrover/proxy/8787/status | Workers: 28 |
| Total threads: 56 | Total memory: 521.64 GiB |
Scheduler Info
Scheduler
Scheduler-ae0706f5-661f-41dc-9d4a-3c85ca840795
| Comm: tcp://10.12.206.5:37167 | Workers: 28 |
| Dashboard: https://jupyterhub.hpc.ucar.edu/stable/user/mgrover/proxy/8787/status | Total threads: 56 |
| Started: 38 minutes ago | Total memory: 521.64 GiB |
Workers
Worker: 1
| Comm: tcp://10.12.206.15:33452 | Total threads: 2 |
| Dashboard: https://jupyterhub.hpc.ucar.edu/stable/user/mgrover/proxy/40454/status | Memory: 18.63 GiB |
| Nanny: tcp://10.12.206.15:34889 | |
| Local directory: /glade/scratch/mgrover/dask/casper-dav/local-dir/dask-worker-space/worker-ybmxvsaf | |
Worker: 22
| Comm: tcp://10.12.206.8:33615 | Total threads: 2 |
| Dashboard: https://jupyterhub.hpc.ucar.edu/stable/user/mgrover/proxy/38576/status | Memory: 18.63 GiB |
| Nanny: tcp://10.12.206.8:37483 | |
| Local directory: /glade/scratch/mgrover/dask/casper-dav/local-dir/dask-worker-space/worker-m5amse9k | |
Worker: 23
| Comm: tcp://10.12.206.15:40181 | Total threads: 2 |
| Dashboard: https://jupyterhub.hpc.ucar.edu/stable/user/mgrover/proxy/37344/status | Memory: 18.63 GiB |
| Nanny: tcp://10.12.206.15:43667 | |
| Local directory: /glade/scratch/mgrover/dask/casper-dav/local-dir/dask-worker-space/worker-xm1d2t5m | |
Worker: 24
| Comm: tcp://10.12.206.8:34224 | Total threads: 2 |
| Dashboard: https://jupyterhub.hpc.ucar.edu/stable/user/mgrover/proxy/36385/status | Memory: 18.63 GiB |
| Nanny: tcp://10.12.206.8:34373 | |
| Local directory: /glade/scratch/mgrover/dask/casper-dav/local-dir/dask-worker-space/worker-qocbhxgw | |
Worker: 25
| Comm: tcp://10.12.206.15:33362 | Total threads: 2 |
| Dashboard: https://jupyterhub.hpc.ucar.edu/stable/user/mgrover/proxy/35650/status | Memory: 18.63 GiB |
| Nanny: tcp://10.12.206.15:36867 | |
| Local directory: /glade/scratch/mgrover/dask/casper-dav/local-dir/dask-worker-space/worker-jl8ndcg2 | |
Worker: 26
| Comm: tcp://10.12.206.15:46581 | Total threads: 2 |
| Dashboard: https://jupyterhub.hpc.ucar.edu/stable/user/mgrover/proxy/34572/status | Memory: 18.63 GiB |
| Nanny: tcp://10.12.206.15:38471 | |
| Local directory: /glade/scratch/mgrover/dask/casper-dav/local-dir/dask-worker-space/worker-drv9ziri | |
Worker: 28
| Comm: tcp://10.12.206.20:43412 | Total threads: 2 |
| Dashboard: https://jupyterhub.hpc.ucar.edu/stable/user/mgrover/proxy/41301/status | Memory: 18.63 GiB |
| Nanny: tcp://10.12.206.20:38802 | |
| Local directory: /glade/scratch/mgrover/dask/casper-dav/local-dir/dask-worker-space/worker-2ieo1scd | |
Worker: 29
| Comm: tcp://10.12.206.20:45741 | Total threads: 2 |
| Dashboard: https://jupyterhub.hpc.ucar.edu/stable/user/mgrover/proxy/35719/status | Memory: 18.63 GiB |
| Nanny: tcp://10.12.206.20:38687 | |
| Local directory: /glade/scratch/mgrover/dask/casper-dav/local-dir/dask-worker-space/worker-0o_pae0r | |
Worker: 30
| Comm: tcp://10.12.206.8:33148 | Total threads: 2 |
| Dashboard: https://jupyterhub.hpc.ucar.edu/stable/user/mgrover/proxy/43445/status | Memory: 18.63 GiB |
| Nanny: tcp://10.12.206.8:38920 | |
| Local directory: /glade/scratch/mgrover/dask/casper-dav/local-dir/dask-worker-space/worker-e92d6zvb | |
Worker: 38
| Comm: tcp://10.12.206.15:37460 | Total threads: 2 |
| Dashboard: https://jupyterhub.hpc.ucar.edu/stable/user/mgrover/proxy/39250/status | Memory: 18.63 GiB |
| Nanny: tcp://10.12.206.15:42743 | |
| Local directory: /glade/scratch/mgrover/dask/casper-dav/local-dir/dask-worker-space/worker-epqt8i7e | |
Worker: 39
| Comm: tcp://10.12.206.15:37275 | Total threads: 2 |
| Dashboard: https://jupyterhub.hpc.ucar.edu/stable/user/mgrover/proxy/40001/status | Memory: 18.63 GiB |
| Nanny: tcp://10.12.206.15:40355 | |
| Local directory: /glade/scratch/mgrover/dask/casper-dav/local-dir/dask-worker-space/worker-yp_uipk0 | |
Worker: 40
| Comm: tcp://10.12.206.15:39778 | Total threads: 2 |
| Dashboard: https://jupyterhub.hpc.ucar.edu/stable/user/mgrover/proxy/39617/status | Memory: 18.63 GiB |
| Nanny: tcp://10.12.206.15:45297 | |
| Local directory: /glade/scratch/mgrover/dask/casper-dav/local-dir/dask-worker-space/worker-qfa0q2qv | |
Worker: 41
| Comm: tcp://10.12.206.8:33328 | Total threads: 2 |
| Dashboard: https://jupyterhub.hpc.ucar.edu/stable/user/mgrover/proxy/40596/status | Memory: 18.63 GiB |
| Nanny: tcp://10.12.206.8:37393 | |
| Local directory: /glade/scratch/mgrover/dask/casper-dav/local-dir/dask-worker-space/worker-ui97y081 | |
Worker: 42
| Comm: tcp://10.12.206.18:39476 | Total threads: 2 |
| Dashboard: https://jupyterhub.hpc.ucar.edu/stable/user/mgrover/proxy/44501/status | Memory: 18.63 GiB |
| Nanny: tcp://10.12.206.18:35127 | |
| Local directory: /glade/scratch/mgrover/dask/casper-dav/local-dir/dask-worker-space/worker-3povkih6 | |
Worker: 43
| Comm: tcp://10.12.206.8:45711 | Total threads: 2 |
| Dashboard: https://jupyterhub.hpc.ucar.edu/stable/user/mgrover/proxy/38730/status | Memory: 18.63 GiB |
| Nanny: tcp://10.12.206.8:45806 | |
| Local directory: /glade/scratch/mgrover/dask/casper-dav/local-dir/dask-worker-space/worker-2lcj16tb | |
Worker: 44
| Comm: tcp://10.12.206.20:39498 | Total threads: 2 |
| Dashboard: https://jupyterhub.hpc.ucar.edu/stable/user/mgrover/proxy/39762/status | Memory: 18.63 GiB |
| Nanny: tcp://10.12.206.20:44138 | |
| Local directory: /glade/scratch/mgrover/dask/casper-dav/local-dir/dask-worker-space/worker-c1wsyy1b | |
Worker: 45
| Comm: tcp://10.12.206.20:46404 | Total threads: 2 |
| Dashboard: https://jupyterhub.hpc.ucar.edu/stable/user/mgrover/proxy/38109/status | Memory: 18.63 GiB |
| Nanny: tcp://10.12.206.20:39829 | |
| Local directory: /glade/scratch/mgrover/dask/casper-dav/local-dir/dask-worker-space/worker-_pglpr8z | |
Worker: 46
| Comm: tcp://10.12.206.20:40277 | Total threads: 2 |
| Dashboard: https://jupyterhub.hpc.ucar.edu/stable/user/mgrover/proxy/44783/status | Memory: 18.63 GiB |
| Nanny: tcp://10.12.206.20:41500 | |
| Local directory: /glade/scratch/mgrover/dask/casper-dav/local-dir/dask-worker-space/worker-5neahqj6 | |
Worker: 47
| Comm: tcp://10.12.206.37:35074 | Total threads: 2 |
| Dashboard: https://jupyterhub.hpc.ucar.edu/stable/user/mgrover/proxy/36570/status | Memory: 18.63 GiB |
| Nanny: tcp://10.12.206.37:44860 | |
| Local directory: /glade/scratch/mgrover/dask/casper-dav/local-dir/dask-worker-space/worker-gbrkfn_0 | |
Worker: 55
| Comm: tcp://10.12.206.15:46177 | Total threads: 2 |
| Dashboard: https://jupyterhub.hpc.ucar.edu/stable/user/mgrover/proxy/44417/status | Memory: 18.63 GiB |
| Nanny: tcp://10.12.206.15:43359 | |
| Local directory: /glade/scratch/mgrover/dask/casper-dav/local-dir/dask-worker-space/worker-ulryibkh | |
Worker: 56
| Comm: tcp://10.12.206.15:42709 | Total threads: 2 |
| Dashboard: https://jupyterhub.hpc.ucar.edu/stable/user/mgrover/proxy/40594/status | Memory: 18.63 GiB |
| Nanny: tcp://10.12.206.15:33163 | |
| Local directory: /glade/scratch/mgrover/dask/casper-dav/local-dir/dask-worker-space/worker-1zupek0o | |
Worker: 57
| Comm: tcp://10.12.206.15:44129 | Total threads: 2 |
| Dashboard: https://jupyterhub.hpc.ucar.edu/stable/user/mgrover/proxy/33497/status | Memory: 18.63 GiB |
| Nanny: tcp://10.12.206.15:45539 | |
| Local directory: /glade/scratch/mgrover/dask/casper-dav/local-dir/dask-worker-space/worker-2ghkbvg5 | |
Worker: 58
| Comm: tcp://10.12.206.18:42718 | Total threads: 2 |
| Dashboard: https://jupyterhub.hpc.ucar.edu/stable/user/mgrover/proxy/37119/status | Memory: 18.63 GiB |
| Nanny: tcp://10.12.206.18:44484 | |
| Local directory: /glade/scratch/mgrover/dask/casper-dav/local-dir/dask-worker-space/worker-wa_7ctkq | |
Worker: 59
| Comm: tcp://10.12.206.8:44893 | Total threads: 2 |
| Dashboard: https://jupyterhub.hpc.ucar.edu/stable/user/mgrover/proxy/45184/status | Memory: 18.63 GiB |
| Nanny: tcp://10.12.206.8:34042 | |
| Local directory: /glade/scratch/mgrover/dask/casper-dav/local-dir/dask-worker-space/worker-onhrct2y | |
Worker: 60
| Comm: tcp://10.12.206.20:40710 | Total threads: 2 |
| Dashboard: https://jupyterhub.hpc.ucar.edu/stable/user/mgrover/proxy/46219/status | Memory: 18.63 GiB |
| Nanny: tcp://10.12.206.20:42567 | |
| Local directory: /glade/scratch/mgrover/dask/casper-dav/local-dir/dask-worker-space/worker-0rl9xlk2 | |
Worker: 61
| Comm: tcp://10.12.206.18:42708 | Total threads: 2 |
| Dashboard: https://jupyterhub.hpc.ucar.edu/stable/user/mgrover/proxy/40329/status | Memory: 18.63 GiB |
| Nanny: tcp://10.12.206.18:44394 | |
| Local directory: /glade/scratch/mgrover/dask/casper-dav/local-dir/dask-worker-space/worker-4s0pteyb | |
Worker: 62
| Comm: tcp://10.12.206.20:41722 | Total threads: 2 |
| Dashboard: https://jupyterhub.hpc.ucar.edu/stable/user/mgrover/proxy/42630/status | Memory: 18.63 GiB |
| Nanny: tcp://10.12.206.20:38500 | |
| Local directory: /glade/scratch/mgrover/dask/casper-dav/local-dir/dask-worker-space/worker-_ekot39u | |
Worker: 63
| Comm: tcp://10.12.206.20:45548 | Total threads: 2 |
| Dashboard: https://jupyterhub.hpc.ucar.edu/stable/user/mgrover/proxy/46201/status | Memory: 18.63 GiB |
| Nanny: tcp://10.12.206.20:44055 | |
| Local directory: /glade/scratch/mgrover/dask/casper-dav/local-dir/dask-worker-space/worker-3m87lkaz | |
pop_plot = cyclic_ds.TEMP.hvplot.quadmesh(x='TLONG', y='TLAT', cmap='magma', rasterize=True, crs=ccrs.PlateCarree(), projection=ccrs.Robinson(), project=True) * gf.coastline
pop_plot